home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
050
/
madtrb4.arc
/
FILEATTR.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1984-12-19
|
2KB
|
72 lines
{@@@@@@@@@@@ copyright (C) 1984 by Neil J. Rubenking @@@@@@@@@@@@@@@@@@@@@@@@
The purchaser of these procedures and functions may include them in COMPILED
programs freely, but may not sell or give away the source text.
}
{$I regpack.typ}
{$I filename.typ}
{$I fileattr.lib}
{$I errmessg.lib}
type
AttString = string[6];
CharSet = set of char;
const
AttChars : charset = ['R','H','S','V','D','A'];
var
this_file : filename_type;
error, N,
this_attribute : byte;
char_attributes : AttString;
{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
function convert(attribute:byte):AttString;
var
temp : attString;
begin
temp := ' ';
if attribute and 1 = 1 then temp[1] := 'R';
if attribute and 2 = 2 then temp[2] := 'H';
if attribute and 4 = 4 then temp[3] := 'S';
if attribute and 8 = 8 then temp[4] := 'V';
if attribute and 16 = 16 then temp[5] := 'D';
if attribute and 32 = 32 then temp[6] := 'A';
convert := temp;
end;
{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
function UnConvert(atts : attString):byte;
var
temp : byte;
begin
temp := 0;
if pos('R',atts) <> 0 then temp := temp + 1;
if pos('H',atts) <> 0 then temp := temp + 2;
if pos('S',atts) <> 0 then temp := temp + 4;
if pos('V',atts) <> 0 then temp := temp + 8;
if pos('D',atts) <> 0 then temp := temp + 16;
if pos('A',atts) <> 0 then temp := temp + 32;
UnConvert := temp;
end;
{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
begin
WriteLn('Enter the name and full path of file to be changed.');
ReadLn(this_file);
FileAttribute('R',this_file,this_attribute,error);
if error = 0 then
begin
WriteLn('Current attributes are ',Convert(this_attribute));
WriteLn('Enter new attributes--[R]ead only, [H]idden, [S]ystem,[A]rchive');
read(char_attributes);
for N := 1 to length(char_attributes) do
char_attributes[N] := UpCase(char_attributes[N]);
this_attribute := UnConvert(char_attributes);
FileAttribute('W',this_file,this_attribute,error);
if error = 0 then
begin
WRite('Sucessfully changed the attribute of ',this_file);
WriteLn(' to ',convert(this_attribute),'.');
end
else WriteLn(message(error));
end
else WriteLn(message(error));
end.